Metamorph Alpha
written by Steve Sprang

February 2, 1997 (Groundhog's Day)


Introduction
============

Metamorph Alpha is a crude prototype of the morphing application I hope to release
within the next two or three months. I began work on the project over winter break
but have not had much time to work on it for nearly a month (I'm a full-time 
computer science major at CMU). I finally managed to sacrifice a few hours to
fix things up enough to consider it an Alpha.

Although I've released Metamorph, please keep in mind that it is *Alpha*. Roughly
translated that means "Ugh". There's still a way to go before I'll consider it
good enough to be Beta. (Beta by the way means "Pretty Good").

I do feel, however, that it's generally good enough for you to take a peek at.


What You Need
=============

*** IMPORTANT ***

Metamorph is useless unless you have installed Jake Hamby's JPEG library.
It is available from ftp.be.com in /pub/contrib/libraries/jpeg-6a_BeBox.tar.gz


Basics
======

1) Sequence Window - a window which holds thumbnail images of jpegs which you would like
to morph. Drag jpeg files into the window or select "New Tile..." from the "File" menu
in order to add them to your sequence. 

2) Tile - a box in the sequence window which holds the actual thumbnails. The "Frames"
field is currently ignored, but it will eventually allow you to specify the number
of morphed frames between the current image and the next. If you click in the tile
border with the second mouse button you get a pop-up menu which allows you to remove
the tile. If you click and hold with the first mouse button you can drag 'n' drop a
tile into a new position in the sequence (if you release the button when the cursor
is over the left half of a tile the dropped tile will be placed before it in the
sequence, releasing it over the right half of a tile places the dropped tile after it
in the sequence). Tiles are cool. Add as many as you want.

3) Mesh Editor - a window which allows you to edit the (currently fixed-size) mesh of an
image. The mesh lets you set the correspondence between jpegs in your sequence. You
can open the mesh editor by clicking on the image thumbnail in the tile. Opening
the editor for each image in your sequence will allow you to see which point is currently
selected in all of the tiles. There is a bug in this actually: double-click a point
to see the corresponding point in the other images.

4) Morph Window - The window which shows the actual morph. To get this going select "Morph"
from the "Morph" menu. 


Pitfalls
========

* Please make sure you have saved all of your important documents before playing
with Metamorph. It's still buggy.

* The "Metamorph" folder must be at the top level of your bootdisk hierarchy 
(i.e. typing "/boot/Metamorph/Metamorph" in the terminal window should boot the app. 
This allows the included demo sequence to find all the approriate files (my quick
implementation stores them as simple paths).

* Don't quit the application while a morph is actually morphing. Select "Stop" from
the morph window's "Morph" menu first. (say that 10 times fast)

* All images in a seqence MUST be the same size. No error-checking here!

* Try rearranging the sequence and adjusting meshes while the morph is actually running.
It's pretty cool. Just DON'T REMOVE a tile during a morph!

* If you save a sequence, the hardcoded filename is "/boot/Metamorph/sequence". Sorry.
You can change the name and move it wherever you like after it's been created. (Just
don't move the refereneced images)

* No way to save the actual animations.

* Runs slowly on my Dual 603-66 BeBox. 

* Looks crappy on my Power Macintosh 8500. No 32-bit color and poor 8-bit dithering of
32-bit bitmaps. I've included a Macintosh version (MetamorphMac) which swaps the
color bytes of the bitmap so that colors appear correctly. This is a temporary until
Be implements an OS-level fix.

* The "Loop" option cannot be shut off. Morphs just keep on looping. 

* Probably others that I've forgotten... it's 5:30 AM.


Changes expected for version 1.0
================================

* Use of the awesome DataTypes library from Jon Watte
* Support for 8-bit and 32-bit image formats (follows somewhat from above)
* Proper saving/loading of sequences
* Segment based correspondence-setting (or a better mesh-based method)
* Variable sized images
* Magnify in segment editing window
* Saving of generated morphs into some movie format
* Improved Performance


License
=======

Metamorph is currently being distributed as freeware because it's only an Alpha
version. However, the real release, which will hopefully be available in sync
with DR9, will be shareware. The license is expected to be $10.

If you like Metamorph (or think it shows potential) I would welcome monetary 
donations at this time. This will allow me to see general interest in the project,
and also give me incentive to keep working on the program.

If you should send a donation now, you'll be automatically registered for all
future versions of Metamorph. Not to mention that you're name will go into a list
of my personal heroes. ;)

Donations larger than $10 are also welcome.


Images
======

The two images included with Metamorph were taken from Gryphon's Morph demo package
for the Macintosh.


Contact Info
============

Please send all comments or bug reports to me:

E-mail:  sprang@andrew.cmu.edu
		 ssprang@cs.cmu.edu
		
Permanent Address:
		Steve Sprang
		141 State Route 603
		Shiloh, OH 44878
		
WWW: http://www.andrew.cmu.edu/user/sprang

Other Be software I've written:
	http://www.andrew.cmu.edu/user/sprang/besoft.html

